/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * AdministrarUsuario.java
 *
 * Created on 11-ene-2013, 11:15:21
 */
package inscripciones.vista;

import java.awt.event.KeyEvent;
import java.util.ArrayList;
import inscripciones.DAO.ConsultasBD;
import inscripciones.ModeloDAO.UsuarioDAO;
import inscripciones.Utiles.Mensajes;
import inscripciones.modelo.Usuario;

/**
 *
 * @author DJ2-PC
 */
public class AdministrarUsuario extends javax.swing.JDialog {

    ArrayList<Usuario> usuarios;
    Usuario usuario;

    /** Creates new form AdministrarUsuario */
    public AdministrarUsuario(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        this.usuarios = (ArrayList<Usuario>) new ConsultasBD().buscarTodos("Usuario");
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {
        bindingGroup = new org.jdesktop.beansbinding.BindingGroup();

        imagePanel1 = new com.mycsistemas.swingec.panel.ImagePanel();
        curvesPanel1 = new com.mycsistemas.swingec.panel.CurvesPanel();
        jPanelAdministrarUsuario = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTblAdmUsuario = new javax.swing.JTable();
        jBtnEditUsuarioAdm = new javax.swing.JButton();
        jBtnEliminarUsuarioAdm = new javax.swing.JButton();
        jBtnNuevoUsuarioAdm = new javax.swing.JButton();
        jBtnPrivilegiosUsuarioAdm = new javax.swing.JButton();
        jLblBusUsuarioAdm = new javax.swing.JLabel();
        jTxtBusUsuario = new javax.swing.JTextField();
        jBtnBusUsuarioAdm = new javax.swing.JButton();
        jLblAdmUsuario = new javax.swing.JLabel();
        jBtnAdmCancelarUsuario = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Administrar Usuario");

        imagePanel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/inscripciones/Recursos/''_10102012_1738.jpeg"))); // NOI18N
        imagePanel1.setLayout(null);

        curvesPanel1.setLayout(null);

        jPanelAdministrarUsuario.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Tabla Administrar Usuario", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 1, 10), java.awt.Color.white)); // NOI18N
        jPanelAdministrarUsuario.setOpaque(false);
        jPanelAdministrarUsuario.setLayout(null);

        jTblAdmUsuario.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Title 1", "Title 2"
            }
        ));

        org.jdesktop.beansbinding.ELProperty eLProperty = org.jdesktop.beansbinding.ELProperty.create("${usuarios}");
        org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, eLProperty, jTblAdmUsuario);
        org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${id}"));
        columnBinding.setColumnName("Id");
        columnBinding.setColumnClass(Integer.class);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${nombre}"));
        columnBinding.setColumnName("Nombre");
        columnBinding.setColumnClass(String.class);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${idPrivilegio}"));
        columnBinding.setColumnName("Id Privilegio");
        columnBinding.setColumnClass(inscripciones.modelo.PrivilegioUsuario.class);
        bindingGroup.addBinding(jTableBinding);
        jTableBinding.bind();
        jScrollPane1.setViewportView(jTblAdmUsuario);
        jTblAdmUsuario.getAccessibleContext().setAccessibleParent(curvesPanel1);

        jPanelAdministrarUsuario.add(jScrollPane1);
        jScrollPane1.setBounds(40, 60, 410, 140);
        jScrollPane1.getAccessibleContext().setAccessibleParent(jScrollPane1);

        jBtnEditUsuarioAdm.setIcon(new javax.swing.ImageIcon(getClass().getResource("/inscripciones/Recursos/Pencil3.png"))); // NOI18N
        jBtnEditUsuarioAdm.setText("Editar");
        jBtnEditUsuarioAdm.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtnEditUsuarioAdmActionPerformed(evt);
            }
        });
        jPanelAdministrarUsuario.add(jBtnEditUsuarioAdm);
        jBtnEditUsuarioAdm.setBounds(470, 70, 130, 40);

        jBtnEliminarUsuarioAdm.setIcon(new javax.swing.ImageIcon(getClass().getResource("/inscripciones/Recursos/trash_32.png"))); // NOI18N
        jBtnEliminarUsuarioAdm.setText("Eliminar");
        jBtnEliminarUsuarioAdm.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtnEliminarUsuarioAdmActionPerformed(evt);
            }
        });
        jPanelAdministrarUsuario.add(jBtnEliminarUsuarioAdm);
        jBtnEliminarUsuarioAdm.setBounds(470, 120, 130, 40);

        jBtnNuevoUsuarioAdm.setIcon(new javax.swing.ImageIcon(getClass().getResource("/inscripciones/Recursos/document_32.png"))); // NOI18N
        jBtnNuevoUsuarioAdm.setText("Nuevo");
        jBtnNuevoUsuarioAdm.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtnNuevoUsuarioAdmActionPerformed(evt);
            }
        });
        jPanelAdministrarUsuario.add(jBtnNuevoUsuarioAdm);
        jBtnNuevoUsuarioAdm.setBounds(470, 20, 130, 40);

        jBtnPrivilegiosUsuarioAdm.setIcon(new javax.swing.ImageIcon(getClass().getResource("/inscripciones/Recursos/Excel.png"))); // NOI18N
        jBtnPrivilegiosUsuarioAdm.setText("Privilegios");
        jBtnPrivilegiosUsuarioAdm.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtnPrivilegiosUsuarioAdmActionPerformed(evt);
            }
        });
        jPanelAdministrarUsuario.add(jBtnPrivilegiosUsuarioAdm);
        jBtnPrivilegiosUsuarioAdm.setBounds(470, 170, 130, 40);

        jLblBusUsuarioAdm.setFont(new java.awt.Font("Elephant", 0, 14));
        jLblBusUsuarioAdm.setForeground(new java.awt.Color(255, 255, 255));
        jLblBusUsuarioAdm.setText("Buscar:");
        jPanelAdministrarUsuario.add(jLblBusUsuarioAdm);
        jLblBusUsuarioAdm.setBounds(38, 26, 54, 18);

        jTxtBusUsuario.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTxtBusUsuarioKeyPressed(evt);
            }
        });
        jPanelAdministrarUsuario.add(jTxtBusUsuario);
        jTxtBusUsuario.setBounds(100, 20, 290, 30);

        jBtnBusUsuarioAdm.setIcon(new javax.swing.ImageIcon(getClass().getResource("/inscripciones/Recursos/search_32.png"))); // NOI18N
        jBtnBusUsuarioAdm.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtnBusUsuarioAdmActionPerformed(evt);
            }
        });
        jPanelAdministrarUsuario.add(jBtnBusUsuarioAdm);
        jBtnBusUsuarioAdm.setBounds(400, 20, 52, 30);

        curvesPanel1.add(jPanelAdministrarUsuario);
        jPanelAdministrarUsuario.setBounds(20, 80, 610, 230);

        jLblAdmUsuario.setFont(new java.awt.Font("Georgia", 3, 18));
        jLblAdmUsuario.setForeground(new java.awt.Color(255, 255, 255));
        jLblAdmUsuario.setText("Administrar Usuario ");
        curvesPanel1.add(jLblAdmUsuario);
        jLblAdmUsuario.setBounds(230, 37, 205, 21);

        jBtnAdmCancelarUsuario.setIcon(new javax.swing.ImageIcon(getClass().getResource("/inscripciones/Recursos/DeleteRed.png"))); // NOI18N
        jBtnAdmCancelarUsuario.setText("Salir");
        jBtnAdmCancelarUsuario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtnAdmCancelarUsuarioActionPerformed(evt);
            }
        });
        curvesPanel1.add(jBtnAdmCancelarUsuario);
        jBtnAdmCancelarUsuario.setBounds(490, 320, 130, 40);

        imagePanel1.add(curvesPanel1);
        curvesPanel1.setBounds(0, 0, 650, 380);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(imagePanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 652, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(imagePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        bindingGroup.bind();

        pack();
    }// </editor-fold>//GEN-END:initComponents

private void jBtnBusUsuarioAdmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnBusUsuarioAdmActionPerformed
// TODO add your handling code here:
    if (jTxtBusUsuario.getText().length() != 0) {
        bindingGroup.unbind();
        usuarios = (ArrayList<Usuario>) new ConsultasBD().buscarLIKE("Usuario", "nombre", jTxtBusUsuario.getText());
        bindingGroup.bind();
    } else {
        bindingGroup.unbind();
        usuarios = (ArrayList<Usuario>) new ConsultasBD().buscarTodos("Usuario");
        bindingGroup.bind();
    }
}//GEN-LAST:event_jBtnBusUsuarioAdmActionPerformed

private void jBtnPrivilegiosUsuarioAdmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnPrivilegiosUsuarioAdmActionPerformed
// TODO add your handling code here:
    AdministrarPrivilegio ap = new AdministrarPrivilegio(null, true);
    ap.setLocationRelativeTo(this);
    ap.setVisible(true);
}//GEN-LAST:event_jBtnPrivilegiosUsuarioAdmActionPerformed

private void jBtnNuevoUsuarioAdmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnNuevoUsuarioAdmActionPerformed
// TODO add your handling code here:
    Usuario u = new Usuario();
    NuevoUsuario nu = new NuevoUsuario(null, true, bindingGroup, usuarios, u);
    nu.setLocationRelativeTo(this);
    nu.setTitle("Nuevo Usuario");
    nu.setVisible(true);
}//GEN-LAST:event_jBtnNuevoUsuarioAdmActionPerformed

private void jBtnEditUsuarioAdmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnEditUsuarioAdmActionPerformed
// TODO add your handling code here:
    if (jTblAdmUsuario.getSelectedRow() != -1) {

        Integer idusu = (Integer) jTblAdmUsuario.getValueAt(jTblAdmUsuario.getSelectedRow(), 0);
        ArrayList<Usuario> uaux = (ArrayList<Usuario>) new ConsultasBD().buscarPOR("Usuario", "id", String.valueOf(idusu));
        this.usuario = uaux.get(0);
        NuevoUsuario nu = new NuevoUsuario(null, true, bindingGroup, usuarios, usuario);
        nu.setLocationRelativeTo(this);
        nu.setTitle("Editar Usuario");
        nu.setVisible(true);
    } else {
        new Mensajes().StandarWarning(this, "Seleccione el Privilegio que Desea Editar");
    }
}//GEN-LAST:event_jBtnEditUsuarioAdmActionPerformed

private void jBtnAdmCancelarUsuarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnAdmCancelarUsuarioActionPerformed
// TODO add your handling code here:
    dispose();
}//GEN-LAST:event_jBtnAdmCancelarUsuarioActionPerformed

private void jBtnEliminarUsuarioAdmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnEliminarUsuarioAdmActionPerformed
// TODO add your handling code here:
    if (jTblAdmUsuario.getSelectedRow() != -1) {
        Integer idusuar = (Integer) jTblAdmUsuario.getValueAt(jTblAdmUsuario.getSelectedRow(), 0);
        ArrayList<Usuario> uaux = (ArrayList<Usuario>) new ConsultasBD().buscarPOR("Usuario", "id", String.valueOf(idusuar));
        this.usuario = uaux.get(0);
        if (new Mensajes().ConfirmacionDialogowarning(this, "¿Está seguro de Eliminar éste registro?") == 0) {
            try {
                UsuarioDAO usuDAO = new UsuarioDAO(this.usuario);
                usuDAO.update();    
                usuDAO.remove();
                new Mensajes().ConfirmacionDialogotick(this, "El Registro se ha Eliminado Con Éxito");
                this.bindingGroup.unbind();
                this.usuarios = (ArrayList<Usuario>)new ConsultasBD().buscarTodos("Usuario");
                this.bindingGroup.bind();

            } catch (Exception ex) {
                //ex.printStackTrace();
                new Mensajes().StandarWarning(this, "                 No es Posible Eliminar. \n Éste Registro está Siendo Utilizado por el Sistema");
            }

        }
    } else {
        new Mensajes().StandarWarning(this, "Seleccione el Usuario que Desea Eliminar");
    }
}//GEN-LAST:event_jBtnEliminarUsuarioAdmActionPerformed

private void jTxtBusUsuarioKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTxtBusUsuarioKeyPressed
// TODO add your handling code here:
    if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
        jBtnBusUsuarioAdm.requestFocus();
        jBtnBusUsuarioAdmActionPerformed(null);
    }
}//GEN-LAST:event_jTxtBusUsuarioKeyPressed

    /**
     * @param args the command line arguments
     */

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private com.mycsistemas.swingec.panel.CurvesPanel curvesPanel1;
    private com.mycsistemas.swingec.panel.ImagePanel imagePanel1;
    private javax.swing.JButton jBtnAdmCancelarUsuario;
    private javax.swing.JButton jBtnBusUsuarioAdm;
    private javax.swing.JButton jBtnEditUsuarioAdm;
    private javax.swing.JButton jBtnEliminarUsuarioAdm;
    private javax.swing.JButton jBtnNuevoUsuarioAdm;
    private javax.swing.JButton jBtnPrivilegiosUsuarioAdm;
    private javax.swing.JLabel jLblAdmUsuario;
    private javax.swing.JLabel jLblBusUsuarioAdm;
    private javax.swing.JPanel jPanelAdministrarUsuario;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTblAdmUsuario;
    private javax.swing.JTextField jTxtBusUsuario;
    private org.jdesktop.beansbinding.BindingGroup bindingGroup;
    // End of variables declaration//GEN-END:variables

    public ArrayList<Usuario> getUsuarios() {
        return usuarios;
    }

    public void setUsuarios(ArrayList<Usuario> usuarios) {
        this.usuarios = usuarios;
    }
}
